#include<bits/stdc++.h>
#define sd(n) scanf("%d",&n) 
#define sld(n) scanf("%lld",&n)
#define pd(n) printf("%d", (n))
#define pld(n) printf("%lld", n)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define fi first
#define se second
const int N=2e5+10;
#define INF 0x7fffffff
typedef long long int ll;
using namespace std;
//----------------------------------------------------------------------------//

int f[N],n;

ll eg[N];

ll st[N],sum;

int main()
{
	// int T;
	// sd(T);
	// while (T--)
	// {
	// 	solve();
	// }

	sd(n);
	int deep=0;

	for(int i=2;i<=n;i++) sd(f[i]);

	for(int i=1;i<=n;i++) sld(eg[i]);

	st[1]=1;
	
	for(int i=2;i<=n;i++) st[i]=st[f[i]]+1;
	
	sort(eg+1,eg+1+n,[](int a,int b){
		return a>b;
	});
	
	sort(st+1,st+n+1,[](int a,int b)
	{
		return a>b;
	});
	for(int i=1;i<=n;i++) sum+=(ll)(st[i]*eg[i]);
	

	pld(sum);
	puts("");

	return 0;
}